The following abbreviations are utilized herein:
3G third generation (of mobile networks)
CDMA code division multiple access
DS-CDMA direct sequence code division multiple access
FDD frequency division duplex
FL forward link (RBU to SU)
FWS fixed wireless system
OVSF orthogonal variable spreading factor
PN pseudo-noise
RBU radio base unit
RF radio frequency
RL reverse link (SU to RBU)
S-CDMA synchronous code division multiple access
SF spread factor
SU subscriber unit
UMTS universal mobile telecommunications system
WCDMA wideband code division multiple access
In the forward direction of a CDMA system, i.e., from a base station or base unit to a fixed or mobile subscriber unit, it is relatively easy to synchronize the PN codes of the various channels since they are all created at and transmitted from the same base station. It is furthermore relatively easy to time-align the chips and symbols of the constituent signals within the aggregate waveform. As a result, the forward channel of most CDMA systems utilizes some form of synchronous CDMA. In some systems, such as a fixed wireless local loop telephone system known as Primewave 2000™, available from the assignee of this patent application, the reverse channel (i.e., subscriber unit to base station) is also quasi-synchronous. In this type of system, a timing control loop is utilized to maintain time-alignment amongst the various users in the system such that their respective signals arrive at the base station within a small fraction of a chip of each other. For mobile cellular applications, synchronous CDMA is limited to the forward link (base station to mobile user) with asynchronous CDMA used in the reverse link. WCDMA and CDMA2000 3G wireless cellular standards both employ synchronous, multi-rate CDMA in the forward link.
Whenever synchronous or quasi-synchronous CDMA is employed, it becomes possible to use PN codes that are designed to have the smallest possible cross-correlation when time-aligned with each other. If the number of users in the system is less than or equal to the number of chips transmitted for each channel symbol (which may be referred to as the channel spreading factor), then it is possible to design PN codes that are truly orthogonal to each other. When the number of users exceeds the channel symbol processing gain, then it is no longer possible to design codes that are orthogonal since the dimensionality of the signaling space has been exceeded. For this reason, it is possible for synchronous and quasi-synchronous CDMA systems to support a number of users equal to the channel symbol processing gain, as long as the links have adequately large power and adequately low interference resulting from signal distortions such as clipping, multi-path, filtering and timing offsets.
It is often desirable for the system to support users that are not all at the same signaling rate. For example, in a system where some users are using a telephone and the required data rate is on the order of a few thousand bits per second (Kbps) to a few tens of Kbps, while other users are using the system as a computer network interface and require a data rate on the order of millions of bits per second (Mbps) or more, the waveform should to be able to simultaneously accommodate the various non-homogeneous users.
It is possible to support a high rate user by allocating to him or her a plurality of parallel, lower rate channels, but this approach requires that the high rate users have a plurality of transmitters and receivers. As such, this approach is generally not desirable in many systems where cost is an important consideration.
A more cost-effective technique to simultaneously support high rate and low rate users is to employ a common chipping rate for all users, but to permit the users in the system to vary their channel symbol spreading factor depending on their respective data rate. This implies that if one desires that all users in either the forward, or the forward and reverse channels, be orthogonal to each other, independent of their rates, then a set of PN codes are needed of various lengths that are mutually orthogonal when synchronized appropriately. A spreading code set allowing variable spread factor/multi-rate operation is called an OVSF code set. Such code sets are employed in fixed wireless CDMA systems as well as 3G wireless CDMA cellular networks, including UMTS/WCDMA. For example, the UMTS FDD channelization codes are OVSF codes.
Walsh functions are a set of binary and orthogonal waveforms that can be used for signal multiplexing purposes, and have long been recognized as having application to telephony. Reference in this regard may be made to an article entitled “The Multiplexing of Telephone Signals by Walsh Functions”, by I. A. Davidson in Applications of Walsh Functions, 1971 proceedings, Second Edition, Eds. R. W. Zeek and A. E. Showalter, pages 177-179.
Of the number of possible sets of orthogonal functions that can be used as carriers in multiplex transmission, the category of completely orthogonal Hadamard functions has also been long recognized as being particularly well-suited for technical applications, including telephony applications. In general, Walsh functions are special Hadamard functions, and can be described by Hadamard matrices with powers of 2 as ordinary numbers. Further function systems can be derived from Hadamard matrices by permutation of columns and rows and by sign inversion, while preserving their orthogonal characteristics.
One method for creating PN codes that are mutually orthogonal is to use a recursive construction technique defined by H. Hubner, “Multiplex Systems Using Sums of Walsh Functions as Carriers”, also in Applications of Walsh Functions, 1971 proceedings, Second Edition, pages 180-191.
Reference in this regard also may be made to U.S. Pat. No. 5,751,761, entitled “System and Method for Orthogonal Spread Spectrum Sequence Generation in Variable Data Rate Systems”, by Klein S. Gilhousen.
In general, the approach used by Gilhousen is a recursive approach, wherein the value of the n-th output of y is created from a previous value of y, so long as n>0. In other words, past relationships are used to create new, current relationships between code elements resulting in a tree like code structure, as shown in Gilhousen.
However, there are several problems with the approach described by Gilhousen. First, if the Walsh codes were used directly then the spectral properties of the PN codes would be very poor. This is due to the fact that the codes are made up of very regular patterns. Some codes are completely un-spread, while others are spread with square waves whose frequencies are one, two, four, eight, etc. times the symbol rate. These users would have very limited immunity to jammers, and would not gain the benefits of being spread with a PN code of processing gain n or 2n (depending on their rate).
In U.S. Pat. No. 5,751,761, the approach used to avoid this problem is to apply a cover code to the code matrix. This amounts to multiplying every code in the set by a single randomizing vector of ±1-valued chips whose length is much larger than the channel symbol processing gain. So long as every code in the set is multiplied by the same cover code, the orthogonality of the set is retained, but the resulting set is made to appear more random.
However, a problem that arises when applying a cover code to the matrix is that the resulting randomized Walsh codes are not uniform. This means that, over any symbol or spreading period, the number of +1 valued chips and −1 valued chips are not equal to one another in most of the resulting PN codes. Balance in the code set is a very desirable property since it implies that the codes are orthogonal to any DC offset in the receiver of the signal. In other words, if the chips are ±1 millivolts in the receiver, but there is a 2 millivolt DC offset in the signal at the input of the despreader, then the despreader would have to multiply the ±1 despreading code with an input signal having values of +3 and +1 millivolts. However, if the PN code is over a symbol, then the DC offset will not affect the despreading process.
Another problem associated with using code sets that are recursively generated is that code sets so generated are not orthogonal if linearly related. In addition, even code sets that are not linearly related but are derived from the same node are orthogonal but only over some predetermined time period. In other words, the instantaneous cross-correlation between code sets of the same branch may be relatively high, which results in interference between users. It will further be appreciated by those skilled in the art that the closer the code sets are to the root node the higher the instantaneous cross-correlation.
As has been made apparent, the use of recursive techniques to create PN code sets can result in non-orthogonal codes and/or orthogonal codes that exhibit high instantaneous cross-correlation.